package pruebas;

import negModel.*;
import junit.framework.TestCase;

public class CarreraTest extends TestCase {

	ListaPartes lj,lo;
	
	Aleron aleron,aleron2;
	Carroceria carroc,carroc2;
	Combustible comb,comb2;
	Tanque tanque,tanque2;
	ControladorDeCombustible controlador,cont2;
	Escape	escape,esc2;
	Llanta llanta,llanta2;
	Neumatico neum,neum2;
	Rueda rueda,rue2;
	Motor motor1,motor2;
	Transmision trans1,trans2; 
	Superficie superficie;
	Clima clima;
	Pista pista;
	Auto auto;
	Auto oponente;
	Carrera carrera;
	
	protected void setUp() throws Exception {
		super.setUp();
		lj = new ListaPartes();
		lo = new ListaPartes();
		
		aleron = new Aleron(1000,15,5,new String("Aleron"),new AlgoPesos(100),true,5,5,8,10);
		carroc = new Carroceria (100,500,3,new String("carr1"),new AlgoPesos(100),true,5,1,10,10,80,100);
		comb = new Combustible(88,88);
		tanque = new  Tanque(100,50,new String ("tanque"),new AlgoPesos(100),true,100,100,comb);
		tanque.cargarComb();
		controlador = new ControladorDeCombustible (1000,50,10,new String("Sistema de Inyeccion"),new AlgoPesos(100),true,10,7);
		escape = new Escape(100,20,70,new String("escape"),new AlgoPesos(100),true,100,8);
		llanta = new Llanta (100, 25,165,new String ("llanta1"),new AlgoPesos(100),false,10,0.05);
		neum = new Neumatico(100,20,150,new String ("neum"),new AlgoPesos(100),false,10,100,10,3);
		rueda = new Rueda(llanta,neum,new String ("rueda1"),false);
		motor1 = new Motor (1000,140,500,new String("Mot1"),new AlgoPesos(100),false,100,1000);
		motor2 = new Motor (1000,140,500,new String("Mot1"),new AlgoPesos(100),false,100,1000);
		trans1 = new Transmision(100,50,50,new String("trans"),new AlgoPesos(100),false,50,5,true);
		trans2 = new Transmision(100,50,50,new String("trans"),new AlgoPesos(100),false,50,5,true);
		
		lj.add(aleron);
		lj.add(carroc);
		lj.add(tanque);
		lj.add(controlador);
		lj.add(escape);
		lj.add(rueda);
		lj.add(motor1);
		lj.add(trans1);
		
		
		aleron2 = new Aleron(1000,15,5,new String("Aleron"),new AlgoPesos(100),true,5,5,8,10);
		carroc2 = new Carroceria (100,500,3,new String("carr1"),new AlgoPesos(100),true,5,1,10,10,80,100);
		comb2 = new Combustible(88,88);
		tanque2 = new  Tanque(100,50,new String ("tanque"),new AlgoPesos(100),true,100,100,comb);
		tanque2.cargarComb();
		cont2 = new ControladorDeCombustible (1000,50,10,new String("Sistema de Inyeccion"),new AlgoPesos(100),true,10,7);
		esc2 = new Escape(100,20,70,new String("escape"),new AlgoPesos(100),true,100,8);
		llanta2 = new Llanta (100, 25,165,new String ("llanta1"),new AlgoPesos(100),false,10,0.05);
		neum2 = new Neumatico(100,20,150,new String ("neum"),new AlgoPesos(100),false,10,100,10,3);
		rue2 = new Rueda(llanta,neum,new String ("rueda1"),false);
		motor1 = new Motor (1000,140,500,new String("Mot1"),new AlgoPesos(100),false,100,1000);
		motor2 = new Motor (1000,140,500,new String("Mot1"),new AlgoPesos(100),false,100,1000);
		trans1 = new Transmision(100,50,50,new String("trans"),new AlgoPesos(100),false,50,5,true);
		trans2 = new Transmision(100,50,50,new String("trans"),new AlgoPesos(100),false,50,5,true);
		
	
		lo.add(aleron2);
		lo.add(carroc2);
		lo.add(tanque2);
		lo.add(cont2);
		lo.add(esc2);
		lo.add(rue2);
		lo.add(motor2);
		lo.add(trans2);
						
		auto = new Auto(lj,"autoJugador");
		oponente =new Auto (lo,"autoOponente");
		
		superficie=new Superficie (3,"Asfalto");
		clima=new Clima (5,"Soleado");
		pista= new Pista (superficie,800,clima);
		
		carrera=new Carrera(pista,auto,oponente,new AlgoPesos(1000));
		
	}

	public void testIniciarCarrera() {
		carrera.iniciarCarrera();
		assertEquals(false,carrera.termino());
		carrera.terminarCarrera();
		assertEquals(true,carrera.termino());
	}

	public void testGetAlgoPesos() {
		assertEquals("1000.0",carrera.getPremio().toString());
	}

}
